/* Copyright (c) 2004-2024 peigen.info. All rights reserved. */

package info.peigen.hotpot.business.account.manage.form;

import info.peigen.hotpot.business.account.facade.enums.AccountStatus;
import info.peigen.hotpot.business.account.facade.enums.AccountType;
import info.peigen.hotpot.business.router.facade.enums.ChannelCode;
import info.peigen.hotpot.common.core.enums.Currency;
import info.peigen.hotpot.common.service.base.manage.ManageFormBase;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

/**
 * <b>(AccountManageSearchForm)</b>
 * 管理后台 查询"账户"表单
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2023-08-29
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class AccountManageSearchForm extends ManageFormBase {
    /** 客户Id */
    @Size(max = 30)
    String        customerId;
    /** 账户Id */
    @Size(max = 30)
    String        accountId;
    /** 账户类型;Customer:客户账户,Provisions:备付金账户,Card:卡,System:系统账户 */
    @Size(max = 20)
    AccountType   accountType;
    /** 账户状态;Init:初始化,Normal:正常账户,Freeze:账户被冻结,Abandon:账户被废弃 */
    @Size(max = 20)
    AccountStatus status;
    /** 币种 */
    @Size(max = 3)
    Currency      currency;
    /** 渠道编码 */
    @Size(max = 50)
    ChannelCode   channelCode;
    /** 合作伙伴Id */
    @Size(max = 30)
    String        partnerId;
}